Routines (alphabetical) > Routines: Q > QUERY_* Routines

QUERY_* Routines

Return Values | General Query * Routine Info Structures | QUERY_TIFF-Specific Routine Info Structures

Query routines allow users to obtain information about an image or ASCII file without having to read the file. The following QUERY_* routines are available in IDL:

QUERY_BMP

QUERY_PICT

QUERY_DICOM

QUERY_PNG

QUERY_GIF

QUERY_PPM

QUERY_IMAGE

QUERY_SRF

QUERY_JPEG

QUERY_TIFF

QUERY_MRSID

QUERY_WAV

Return Values

All of the QUERY_* routines return a result, which is a long with the value of 1 if the query was successful (and the file type was correct) or 0 on failure. If the query was successful, the return argument is an anonymous structure containing all of the available information for that format.

The status is intended to be used to determine if it is appropriate to use the corresponding READ_ routine for a given file. The return status of the QUERY_* will indicate success if the corresponding READ_ routine is likely to be able to read the file. The return status will indicate failure for cases that contain formats that are not supported by the READ_ routines, even though the files may be valid outside of the IDL environment. For example, IDL’s READ_BMP does not support 1-bit-deep images and so the QUERY_BMP function would return failure in the case of a monochrome BMP file.

For image formats, the returned anonymous structure has (minimally) the following fields. If the file does not support multiple images in a single file, the NUM_IMAGES field will always be 1 and the IMAGE_INDEX field will always be 0. Individual routines document additional fields which are returned for a specific format.

The QUERY_ASCII routine has its own return structure; for more information, see its documentation.

General Query * Routine Info Structures

Query Routines Info Structure

Field

IDL data type

Description

CHANNELS

Long

Number of samples per pixel

DIMENSIONS

2-D long array

Size of the image in pixels

HAS_PALETTE

Integer

True if a palette is present

NUM_IMAGES

Long

Number of images in the file

IMAGE_INDEX

Long

Image number for which this structure is valid

PIXEL_TYPE

Integer

IDL basic type code for a pixel sample

SBIT_VALUES Byte array

The values [red, green, blue, gray, alpha] of the original image, if they were set.

0 = Grayscale - the sBIT chunk contains a single byte

2 = True Color- the SBIT chunk contains three bytes for the red, green and blue channels

3 = Indexed Color- the sBIT chunk contains three bytes for the red, green and blue palette entries

4 = Grayscale with Alpha Channel - the sBIT chunk contains two bytes, for the source grayscale data and source alpha data

6 = True Color with Alpha Channel - the sBIT chunk contains four bytes, for the red, green, blue and alpha channels

TYPE

String

String identifying the file format

All the routines accept the IMAGE_INDEX keyword although formats which do not support multiple images in a single file will ignore this keyword.

QUERY_TIFF-Specific Routine Info Structures

QUERY_TIFF Routine Info Structure

Field

IDL data type

Description

BITS_PER_SAMPLE

Long

Number of bits per channel. Possible values are 1, 4, 8, 16, or 32.

DESCRIPTION

String

The contents of the TIFF ImageDescription tag, or an empty string of undefined.

DOCUMENT_NAME

String

The contents of the TIFF DocumentName tag, or an empty string if undefined.

DATE_TIME

String

The contents of the TIFF DateTime tag, or an empty string if undefined.

ORIENTATION

Long

Image orientation (columns, rows):

1 = Left to right, top to bottom (default)

2 = Right to left, top to bottom

3 = Right to left, bottom to top

4 = Left to right, bottom to top

5 = Top to bottom, left to right

6 = Top to bottom, right to left

7 = Bottom to top, right to left

8 = Bottom to top, left to right

PLANAR_CONFIG

Long

How the components of each pixel are stored. Possible values are:

1 = Pixel interleaved RGB image or a two-dimensional image (no interleaving exists). Pixel components (such as RGB) are stored contiguously.

2 = Image interleaved. Pixel components are stored in separate planes.

POSITION

Float array

Two-element vector [X position, Y position] containing the X and Y offsets in the same units as reported in the UNITS field. The X position is relative to the left side of the image. The Y position is relative to the top of the image, with positive Y increasing downwards. If the XPosition or YPosition tag is not defined in the file then a value of 0.0 is returned for that element.

PHOTOMETRIC

Long

Color mode used for the image data. Possible values are:

0 = White is zero

1 = Black is zero

2 = RGB color model

3 = Palette color model

4 = Transparency mask

5 = Separated (usually CMYK)

RESOLUTION

Float array

Two-element vector [X resolution, Y resolution] containing the number of pixels per unit (as reported in the UNITS field).

UNITS

Long

Units of measurement for RESOLUTION:

1 = No units

2 = Inches (the default)

3 = Centimeters

For example, if the UNITS field contains the value 2, then the values in the RESOLUTION field represent pixels per inch.

TILE_SIZE

Long array

Two-element vector [Tile width, Tile height]. Non-tiled images will contain [Image width, 1]